using System;

namespace WWCOETFAttributes
{
    [AttributeUsage(AttributeTargets.Class)]
    public class WWCOETFClass : Attribute
    {
        public WWCOETFClass()
        {
        }
    }

    [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor, AllowMultiple = true)]
    public class WWCOETFParameter : Attribute
    {
        private string nameVal = "";
        private Boolean reqVal = true;
        private string defVal = "";

        public WWCOETFParameter()
        {
        }

        public WWCOETFParameter(string name, Boolean required)
        {
            Name = name;
            Required = required;
        }

        public WWCOETFParameter(string name, string defaultValue)
        {
            Name = name;
            DefaultValue = defaultValue;
        }

        public WWCOETFParameter(string name, Boolean required, string defaultValue)
        {
            Name = name;
            Required = required;
            DefaultValue = defaultValue;
        }

        public string Name
        {
            get { return nameVal; }
            set { nameVal = value; }
        }

        public Boolean Required
        {
            get { return reqVal; }
            set { reqVal = value; }
        }

        public string DefaultValue
        {
            get { return defVal; }
            set { defVal = value; }
        }
    }
}
